﻿//URICK 25/10/2012
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using itau.im.dado;
using Itau.IM.CAS;
using itau.im.entidade;
using EnterpriseLibraryWrapper;

namespace itau.im.negocio
{
    class PoolValidacaoEnvioTesourariaBS : IPoolValidacaoEnvioTesourariaBS
    {
        #region IPoolValidacaoEnvioTesourariaBS Members

        public bool ValidarEnvioCurvasTesouraria(IList<Curva> curvas, String idUsuario)
        {
            try
            {
                IPoolValidacaoEnvioTesourariaDAO poolDAO = DaoFactory.getPoolValidacaoEnvioTesourariaDAO();
                foreach (Curva curva in curvas)
                {
                    using (IntegracaoCAS CAS = new IntegracaoCAS())
                    {
                        if (CAS.VerificarAcessoUsuario(DominioAcesso.Curva, curva.CodigoCurva, Itau.IM.CAS.TipoAcesso.Ativacao))
                        {
                            poolDAO.ValidarEnvioCurvasTesouraria(curva, idUsuario);
                        }
                        else
                        {
                            System.ServiceModel.Web.WebOperationContext.Current.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.Unauthorized;
                        }
                    }
                }
            }
            catch (DadosException ex)
            {
                EnterpriseLibraryFactory.GetExceptionHandler().HandleException(ex, "ErrosNegocios");
            }
            catch (NegociosException ex)
            {
                EnterpriseLibraryFactory.GetExceptionHandler().HandleException(ex, "ErrosNegocios");
            }
            catch (CASException)
            {
                System.ServiceModel.Web.WebOperationContext.Current.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.Unauthorized;
            }
            catch (Exception ex)
            {
                EnterpriseLibraryFactory.GetExceptionHandler().HandleException(ex, "ErrosNegocios");
                throw ex;
            }
            return false;
        }
        #endregion
    }
}
